package com.unidt.www.module.third.enterprise.dao;

import com.unidt.www.framework.common.pojo.PageResult;
import com.unidt.www.framework.mybatis.core.mapper.BaseMapperX;
import com.unidt.www.framework.mybatis.core.query.LambdaQueryWrapperX;
import com.unidt.www.module.third.enterprise.domain.EnterpriseUserDO;
import com.unidt.www.module.third.enterprise.vo.user.EnterpriseUserFollowReqVO;
import com.unidt.www.module.third.enterprise.vo.user.EnterpriseUserListReqVO;
import org.apache.ibatis.annotations.Mapper;

import java.util.Arrays;

/**
 * <p>
 * 部门表 Mapper 接口
 * </p>
 *
 * @author ouyangoyys
 * @since 2022-11-24
 */
@Mapper
public interface EnterpriseUserMapper extends BaseMapperX<EnterpriseUserDO>{

    default PageResult<EnterpriseUserDO> selectList(EnterpriseUserListReqVO reqVO) {
        return selectPage(reqVO,new LambdaQueryWrapperX<EnterpriseUserDO>()
                .eqIfPresent(EnterpriseUserDO::getUid,reqVO.getUid())
                .orderByDesc(Arrays.asList(EnterpriseUserDO::getCreateTime, EnterpriseUserDO::getCreateTime))
        );
    }

    default EnterpriseUserDO selectEnterpriseUserDO(EnterpriseUserFollowReqVO reqVO) {
        return selectOne(new LambdaQueryWrapperX<EnterpriseUserDO>()
               .eqIfPresent(EnterpriseUserDO::getEnterpriseId,reqVO.getEnterpriseId())
               .eqIfPresent(EnterpriseUserDO::getUid,reqVO.getUid())
                .eqIfPresent(EnterpriseUserDO::getDeleted,0)
        );
    }


}
